﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ArgusLib.Drawing;
using ArgusLib.Fractals;
using ArgusLib.Fractals.OrbitFractals;

namespace Fraktalysator.FractalProviders
{
	class BurningShipProvider : IFractalProvider
	{
		public string FractalName { get { return Localization.Text.FractalName_BurningShip; } }
		public Type FractalType { get { return typeof(BurningShip); } }

		public IFractal GetFractal()
		{
			return new BurningShip(new Parameter(1, 1));
		}

		public IFractalParameterInputControl GetParameterInputControl()
		{
			return new Controls.FractalMandelbrotSetInputControl();
		}

		public IParameter GetStandardParameter(int pixelWidth, int pixelHeight)
		{
			Parameter para = new Parameter(pixelWidth, pixelHeight);
			SizeD size = new SizeD(4,4);
			size = size.ChangeRatio(pixelWidth / (double)pixelHeight, ChangeRatioOptions.IncreaseAreaSize);
			para.ShownArea = new ComplexArea()
			{
				Width = size.Width,
				Height = size.Height,
				Rotation = Math.PI
			};
			para.Iterations = 1000;
			return para;
		}
	}
}
